﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Data;

namespace WPFEntityFrameworkTest.ValueConverter
{
    public class BoolToVisibilityConverter : IValueConverter
    {
        /// <summary>
        /// Werte die ein Visibility Objekt annehmen kann.
        /// </summary>
        public enum Visibility
        {
            Hidden,
            Visible,
            Collapsed
        }

        /// <summary>
        /// Wandelt den übergeben Werte True/False in "Visibile" oder "Hidden" String um.
        /// </summary>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            try
            {
                //Wandelt einen Bool Wert so um das dieser als Visibility Converter genutzt werden kann
                //Da visibility nicht mehr TRUE oder FALSE ist sondern 3 Werte annehmen kann siehe "Visibility" Enum
                bool isVisible = (bool)value;

                if (isVisible)
                {
                    return Visibility.Visible.ToString();
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine("Fehler beim Convertieren: BoolToVisibilityConverter.");
            }

            return Visibility.Hidden.ToString();
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
